FIG. 1 shows an example of a BLUETOOTH packet structure 120. The packet may be viewed as having two parts: 1) an access code 125; and 2) the remainder of the packet 160. The remainder of the packet 160 typically includes a packet header and the random “customer” data the packet is responsible for transporting. The access code 125 is unique to the piconet master for the connection between the transmitting device 165 and the receiving device 166. In BLUETOOTH applications, the access code 125 includes a 4 bit preamble 121, a 64 bit synchronization word 122, and a 4 bit postamble 123.
The synchronization word 122 (which may also be referred to as a synch word, synchronization code, synch code, and the like) is unique to the piconet master used in the connection. Upon the reception of a packet at the receiving device 166, the receiving device 166 “checks” the synchronization word 122 embedded within the packet. If the synchronization word 122 matches a pseudo random sequence unique to the piconet master for a connection that includes the receiving device 166, the receiving device 166 understands that the incoming packet is intended for the receiving device 166.
FIG. 2 shows an exemplary embodiment of some of the functional blocks within the receiving device that may be used to perform the above described synchronization word 122 check. FIG. 2 shows a receive channel 209 having a demodulator 206 followed by a plurality of functional components. For BLUETOOTH applications, demodulator 206 corresponds to a frequency shift keyed (FSK) demodulator (which may be implemented as a frequency to voltage converter). An analog to digital converter 201 receives the demodulator 206 output signal 255.
The demodulator 206 output signal 255 may also be referred to as a baseband signal 255. The baseband signal 255 may be filtered, amplified (or processed in other ways) between the demodulator 206 output and the A/D converter 201 input. For purposes of discussing exemplary embodiments, the baseband signal 255 (as it exists prior to processing by the A/D converter 201) may be viewed as an analog signal.
The analog to digital converter 201 is responsible for converting the analog baseband signal 255 into a series of words having values representative of the analog baseband signal waveform. Words are a plurality of bits (where the number of bits may be given generically as “n”). An A/D converter 201 output word may also be referred to as a sample, an output sample, an output word sample, and the like.
The A/D converter output signal 203 is provided to a slicer unit 210. The slicer unit 210 converts the A/D output signal 203 into samples of recovered symbols. That is, note that the pulses 211a,b, 212a,b, 213a,b observed in both the baseband signal 255 and the A/D converter output signal 203 are representative of 1s or 0s being transmitted from the transmitting device to the receiving device.
The slicer unit 210 effectively identifies the presence of each pulse 211a,b, 212a,b, 213a,b and reports the binary value (i.e., a “1” or a “0”) of each A/D converter output sample to the correlator 221 (as seen in the slicer output signal 222 of FIG. 2). For example, the slicer unit 210 may be designed to make a determination of the average value of the A/D converter output signal 203 and threshold the individual values of the A/D converter output signal 203 against this average value.
FIG. 2 shows an example. The average value of the A/D converter output signal 203 is seen at word value level 217. The slicer unit 210 determines this level 217 based upon the observed data stream from the A/D converter 201 (e.g., by continually averaging its output values). The slicer unit 210 converts A/D output values into “1”s or “0”s based upon their position with respect to the threshold level 217.
That is, A/D converter output signal 203 values above the threshold level 217 are given a value of “1” by the slicer unit 210 while A/D converter output signal 203 values below the threshold value 217 are given a value of “0” by the slicer unit 210. The activity of deciding whether a signal is a “1” or a “0” based upon its level with respect to a reference (such as threshold 217 mentioned above) may be referred to as slicing, thresholding, comparing and the like. The slicer unit output signal 222 is shown in FIG. 2. Note that it traces a digital symbol signal 224 which is shown in FIG. 2 for conceptual ease. Digital symbol signal 224 does not need to actually exist at the slicer 210 output.
The correlator unit 221 performs a correlation between the received synchronization word and the synchronization word that the receiving device is “looking for”. A correlation employs a mathematical process (e.g., a “convolution”) which may be implemented with electronic circuitry or software. The correlation provides a measurement of the likeness between two signals.
To perform the aforementioned synchronization word check, the received synchronization word from the slicer unit 210 is correlated with the synchronization word that is unique to the piconet master of the receiving device's connection. This helps the receiving device understand their likeness with respect to one another. If they are deemed to have an acceptable amount of likeness, the synchronization words are deemed to be the same and the received packet is regarded as being intended for the receiving device.
Frequency shift keyed (FSK) communication (which is used in BLUETOOTH applications) suffers if deviations exist from the “designed for” carrier frequency within the transmitting device and/or the “designed for” downconversion frequency within the receiving device. As the deviations in carrier and/or downconversion frequency may be viewed as errors in frequency; and, as FSK demodulation may be viewed as a form of frequency to voltage conversion—it follows that these frequency errors are reproduced as voltage errors in the baseband signal 255. Specifically, referring to FIG. 3, an offset 356 from the baseband signal's “designed for” DC level 301 arises.
FIG. 3 shows an exemplary A/D converter output signal 355 as it interprets an analog baseband signal having an offset 356 as described above. In the depiction of FIG. 3, at time Tx, the transmitting device begins to transmit a signal at the carrier frequency causing a “jump” in the received baseband signal (as a result of the aforementioned frequency error(s)) from nominal DC level 301 to offset level 356. After an amount of time Tg, the transmitting device begins to transmit the packet at time T0. In some applications the amount of time Tg is deliberately imposed by the transmitting device to help the receiving device adjust to the offset 356; however, note that this particular transmitter design approach is not necessary in all applications.
FIG. 3 also shows a depiction of an exemplary response of the slicer threshold level 312 to the offset 356. Generally, if a slicer is designed to accurately calculate the threshold level (e.g., by calculating an average over a lengthy run of the baseband signal) the threshold level 312 will slowly respond to the offset 356. Thus, as seen in FIG. 3, the slicer threshold level 312 does not fully adjust to the offset 356 until time T1.
As a result of the lengthy adjustment period of the slicer's threshold level (i.e., between time period between Tx and T1), the output signal of the slicer (which is shown as digital symbol signal 314) corresponds to a lengthy incorrect interpretation of the baseband signal. A correct interpretation, shown as correct digital symbol signal 315, is also provided in FIG. 3 for comparison. An extended incorrect interpretation may result in a low correlation value, eventhough the synchronization word of the packet being received possess the pattern being correlated for. This results in the receiver improperly deciding that the packet should be ignored.